package com.sap.sap_mangers.mapper;

import com.sap.sap_mangers.pojo.SapNavigation;
import com.sap.sap_mangers.pojo.SapNavigationClassify;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 樊东升
 * @date 2022/8/19 23:14
 */
@Mapper
public interface NavigationMapper {
    /**
     * 获取导航信息
     *
     * @param classify 分类ID
     * @return
     */
    List<SapNavigation> getNavigation(@Param("classify") Integer classify);

    /**
     * 获取导航分类ID
     *
     * @return
     */
    Integer getNavigationClassify();

    /**
     * 添加导航信息
     *
     * @param addNavigation 导航信息
     */
    void addNavigation(@Param("addNavigation") SapNavigation addNavigation);

    /**
     * 修改导航信息
     *
     * @param updateNavigation 导航信息
     */
    void updateNavigation(@Param("updateNavigation") SapNavigation updateNavigation);

    /**
     * 获取导航的排序最大值
     *
     * @param classify 分类ID
     * @return 最大值
     */
    Integer getRank(@Param("classify") Integer classify);

    /**
     * 修改某一个分类下的排序
     *
     * @param rank 排序依据
     * @param id   表ID
     */
    void updateRank(@Param("id") Integer id, @Param("rank") Integer rank);

    /**
     * 获取所有站点分类
     *
     * @return
     */
    List<SapNavigationClassify> getSapNavigationClassify();

    /**
     * 通过Id获取旧等级
     *
     * @param id id
     * @return
     */
    Integer getOldRank(@Param("id") Integer id);

    /**
     * 通过等级和分类确认唯一的id
     *
     * @param rank     等级
     * @param classify 分类
     * @return
     */
    SapNavigation getIdByRankAndClassify(@Param("rank") Integer rank, @Param("classify") Integer classify);

    /**
     * 通过id获取导航信息
     *
     * @param id id
     * @return 导航信息
     */
    SapNavigation getMessageById(@Param("id") Integer id);

    /**
     * 删除导航信息
     *
     * @param id 导航ID
     */
    void deleteMessageById(@Param("id") Integer id);

    /**
     * 获取添加信息以后的id
     *
     * @return
     */
    Integer getMessageId();
}
